import request from '@/utils/request'
import Qs from 'qs'

/**
 * 获取当前租户拥有的菜单
 */
export function queryLayoutInAuth() {
  return request({
    url: '/sys/menu/queryLayoutInAuth',
    method: 'get'
  })
}

/**
 * 查询菜单列表
 * @param {object} data 检索数据
 */
export function list(data) {
  return request({
    url: '/sys/menu/list',
    method: 'get',
    params: data
  })
}

/**
 * 查询菜单类型
 */
export function queryTypes() {
  return request({
    url: '/sys/menu/queryTypes',
    method: 'get',
  })
}

/**
 * 查询菜单能力
 */
export function queryAbility() {
  return request({
    url: '/sys/menu/queryAbility',
    method: 'get',
  })
}

/**
 * 通过菜单类型获编码取菜单能力
 */
export function queryAbilityByTypeCode(data) {
  return request({
    url: '/sys/menu/queryAbilityByType',
    method: 'get',
    params: {
      typeCode: data
    }
  })
}

/**
 * 查询所有菜单创建人
 */
export function queryCreateTenant() {
  return request({
    url: '/sys/menu/queryCreateTenant',
    method: 'get',
  })
}

/**
 * 查询所有菜单创建人
 */
export function refreshCache() {
  return request({
    url: '/sys/menu/refreshCache',
    method: 'post',
  })
}

/**
 * 删除菜单
 * @param {array} data 菜单id
 */
export function deleteByIds(data) {
  return request({
    url: '/sys/menu/deleteByIds',
    method: 'delete',
    params: {
      menuIds: data
    },
    paramsSerializer: params => {
      return Qs.stringify(params, { indices: false })
    }
  })
}

/**
 * 修改菜单
 *  @param {array} data 菜单数据
 */
export function change(data) {
  return request({
    url: '/sys/menu/change',
    method: 'put',
    data
  })
}

/**
 * 导出菜单（xml数据）
 *  @param {array} data 菜单数据
 */
export function exportXml(menuIds) {
  return request({
    url: '/sys/menu/export/xml',
    method: 'get',
    params: {
      menuIds
    }
  })
}

/**
 * 导出菜单模板（xml格式）
 */
export function exportTemplate() {
  return request({
    url: '/sys/menu/exportTemplate/xml',
    method: 'get'
  })
}


/**
 * 查询接口信息
 */
export function queryApis() {
  return request({
    url: '/sys/userAuth/queryApis',
    method: 'get'
  })
}

/**
 * 通过菜单类型查询渲染规则
 */
export function queryRenderRule(data) {
  return request({
    url: '/sys/menu/queryRenderRule',
    method: 'get',
    params: {
      typeCode: data
    }
  })
}

/**
 * 通过菜单类型查询支持的父菜单
 */
export function querySupportParent(data) {
  return request({
    url: '/sys/menu/querySupportParent',
    method: 'get',
    params: {
      typeCode: data
    }
  })
}

/**
 * 创建菜单
 */
export function create(data) {
  return request({
    url: '/sys/menu/create',
    method: 'post',
    data
  })
}

/**
 * 通过id查询菜单
 */
export function queryById(data) {
  return request({
    url: '/sys/menu/queryById',
    method: 'get',
    params: {
      menuId: data
    }
  })
}

/**
 * 查询当前租户权限列表菜单
 */
export function queryPermListInAuth() {
  return request({
    url: '/sys/menu/queryPermListInAuth',
    method: 'get'
  })
}

/**
 * 获取当前租户所有页面内菜单
 */
export function listPageInnerMapInAuth() {
  return request({
    url: '/sys/menu/listPageInnerMapInAuth',
    method: 'get'
  })
}
